Rails 7.2からpuma thread数のデフォルトが5から3になる
discussion
https://github.com/rails/rails/issues/50450
Rails
7.2から
Puma
worker
のデフォルトスレッド数が5から3になる
前提
スレッド
を増やすと
スループット
は上がるが
レイテンシ
は下がる
トレードオフ
がある
GVL
スイッチ、
スレッド
スイッチなどのコスト etc.のため
マシンリソース、秒間リクエスト数なども関連し、すべてのアプリケーションにとってベストといえる正解はない
それでもデフォルト値はほとんどのアプリケーションにとって合理的な数字であるべき
Web application
の
IO wait
が処理時間の何%なのかによって適切な数は変わる
DBを持たない
プロキシ
のようなサーバーならガンガン増やしてもいい
Sidekiq
などのbackground jobはレイテンシをweb appほど気にしないので、より多くのスレッドを使っても問題ない
関連
Railsでpumaやsidekiqのスレッド数とコネクションプールの数ってどうやって決めるんですか
To Thread or Not to Thread: An In-Depth Look at Ruby’s Execution Models
by
byroot